
public class Multiplier extends Monster
{
  private int multiplingTime = 3;
  private int timer = multiplingTime;

  /**
   * Kitörli az önmagát tartalmazó mezőből a magára mutató refet, majd
   * felrobbantja a körülötte lévő mezőket.
   * @return Minden esetben true.
   */
  public boolean explode()
  {
    field.delete();
    if(!field.getGame().getUranium())
    {
      field.getGame().setUranium();
      field.add(new Uranium());
    }

    for (int i = 1; i <= 6; i++)
    {
        if(!field.getNeighbour(i).isEmpty())
        {
          field.getNeighbour(i).getEntity().explode();
        }
    }
    return true;
  }

  /**
  * Amennyiben lehetséges új Multiplier-eket hoz létre
  * a körülötte lévő mezőkre. (Szaporodik)
  */
  protected void multiply()
  {
      for (int i = 1; i <= 6; i++) {
         if (field.getNeighbour(i).isEmpty()) {
            Multiplier mp = new Multiplier();
            field.getNeighbour(i).add(mp);
            field.getGame().getTimer().add(mp);
          }
      }
  }

  /**
   * Csökkenti a timer értékét, amint az eléri a nullát
   * meghívja a multiply függvényt.
   */
  public void tick()
  {
      --timer;
      if(timer <= 0){
         multiply();
         activate(); //Megöl mindenkit körbe
         timer = multiplingTime;
      }
  }

  public String toString()
  {
    return "multiplier["+ID+"]";
  }
}